
/**
 * This file is part of Nokia OMAF implementation
 *
 * Copyright (c) 2018-2019 Nokia Corporation and/or its subsidiary(-ies). All rights reserved.
 *
 * Contact: omaf@nokia.com
 *
 * This software, including documentation, is protected by copyright controlled by Nokia Corporation and/ or its
 * subsidiaries. All rights are reserved.
 *
 * Copying, including reproducing, storing, adapting or translating, any or all of this material requires the prior
 * written consent of Nokia.
 */
#pragma once

#include "NVRNamespace.h"
#include "Foundation/NVRFixedArray.h"

OMAF_NS_BEGIN
    typedef FixedArray<float32_t, 2048> LensMappingData;
    
    namespace SunexDSL215
    {
        static const float64_t angleToImageHeight[] =
        {
            0,0.002559632956560275,0.00511926591312055,0.007678898869680826,0.0102385318262411,0.012798164782801375,0.015357797739361651,0.017917430695921922,0.0204770636524822,0.023036696609042475,
            0.02559632956560275,0.028155962588394798,0.030715595691611246,0.033275228794827694,0.035834861898044135,0.038394495001260576,0.04095412810447703,0.04351376120769347,0.046073394310909926,0.04863302741412636,
            0.05119266051734281,0.05375229362055926,0.05631192659131206,0.058871559547872335,0.061431192504432616,0.06399082546099288,0.06655045841755317,0.06911009137411345,0.07166972433067371,0.07422935728723398,
            0.07678899024379426,0.07934862320035453,0.08190825620895406,0.0844678893121705,0.08702752241538694,0.08958715551860338,0.09214678862181985,0.09470642172503628,0.09726605482825272,0.09982568793146918,
            0.10238532103468562,0.10494495413790206,0.10750458724111853,0.11006422022606385,0.11262385318262412,0.11518348613918439,0.11774311909574467,0.12030275205230495,0.12286238500886523,0.1254220179654255,
            0.12798165092198577,0.13054128387854605,0.13310091683510633,0.1356605498295133,0.13822018293272978,0.1407798160359462,0.14333944913916263,0.1458990822423791,0.14845871534559554,0.15101834844881198,
            0.15357798155202843,0.15613761465524487,0.1586972477584613,0.16125688086167778,0.16388379215195695,0.16653822632913054,0.16919266050630416,0.1718470946834778,0.1745015288606514,0.17715596303782505,
            0.17981039721499864,0.18246483139217226,0.1851192655693459,0.1877736997465195,0.19041284345007256,0.192972476553289,0.19553210965650544,0.1980917427597219,0.20065137586293832,0.2032110089661548,
            0.20577064206937123,0.20833027517258768,0.2108899082758041,0.21344954137902056,0.21600917448223705,0.21856880749556742,0.2211284404521277,0.22368807340868796,0.22624770636524824,0.22880733932180852,
            0.23136697227836878,0.23392660523492903,0.23648623819148934,0.2390458711480496,0.2416055041046099,0.2441651370706318,0.24672477017384828,0.2492844032770647,0.25184403638028113,0.25440366948349763,
            0.256963302586714,0.25952293568993046,0.26208256879314695,0.26464220189636334,0.26720183499957983,0.2697614681027963,0.2723211011303192,0.27488073408687946,0.2774403670434398,0.28,
            0.2825596329565603,0.28511926591312053,0.28767889886968084,0.2902385318262411,0.2927981647828014,0.2953577977393617,0.29791743069592197,0.30047706379440753,0.30303669689762397,0.3055963300008404,
            0.30815596310405685,0.3107155962072733,0.31327522931048973,0.3158348624137062,0.3183944955169226,0.3209541286201391,0.32351376172335555,0.32607339476507097,0.3286330277216313,0.33119266067819153,
            0.3337522936347518,0.33631192659131204,0.3388715595478723,0.3414311925044326,0.3439908254609929,0.34655045841755316,0.3491100913741134,0.3516697243306737,0.35422935741496675,0.3567889905181832,
            0.3593486236213996,0.3619082567246161,0.3644678898278325,0.36702752293104896,0.36958715603426545,0.3721467891374819,0.3747064222406983,0.3772660553439148,0.3798256883998227,0.382385321356383,
            0.3849449543129433,0.38750458726950354,0.3900642202260638,0.39262385318262416,0.3951834861391844,0.39774311909574467,0.4003027520523049,0.4028623850088652,0.40542201796542554,0.407981651035526,
            0.41054128413874247,0.4131009172419589,0.41566055034517535,0.41822018344839174,0.4207798165516082,0.42333944965482473,0.4258990827580411,0.42845871586125756,0.4310183489644741,0.4335779820345746,
            0.43613761499113485,0.43869724794769516,0.4412568809042554,0.44381651386081566,0.4463761468173759,0.44893577977393617,0.4514954127304964,0.4540550456870567,0.45661467864361704,0.4591743116001773,
            0.46173394465608525,0.4642935777593017,0.4668532108625181,0.4694128439657345,0.471972477068951,0.47453211017216745,0.4770917432753839,0.4796513763786003,0.48221100948181683,0.4847706425850332,
            0.48733027566932624,0.4898899086258866,0.49244954158244686,0.4950091745390071,0.49756880749556737,0.5001284404521277,0.5026880734086879,0.5052477063652483,0.5078073393218085,0.5103669722783688,
            0.5129266052349291,0.5154862382766445,0.5180458713798609,0.5206055044830773,0.5231651375862939,0.5257247706895103,0.5282844037927267,0.5308440368959433,0.5334036699991597,0.535963303102376,
            0.5385229362055926,0.5410825693040782,0.5436422022606384,0.5462018352171987,0.5487614681737589,0.5513211011303192,0.5538807340868795,0.5564403670434398,0.559,0.5615596329565603,
            0.5641192659131206,0.5666788988696808,0.5691926603454553,0.5716574922226269,0.5741223240997982,0.5765871559769696,0.5790519878541409,0.5815168197313124,0.5839816516084838,0.5864464834856553,
            0.5889113153628266,0.591376147239998,0.5938409791171694,0.5963944958953902,0.5989541288519504,0.6015137618085107,0.604073394765071,0.6066330277216313,0.6091926606781916,0.6117522936347518,
            0.6143119265913121,0.6168715595478723,0.6194311925044327,0.6219908255177631,0.6245504586209795,0.6271100917241959,0.6296697248274123,0.6322293579306288,0.6347889910338452,0.6373486241370617,
            0.6399082572402782,0.6424678903434946,0.6450275234467111,0.6475871565499275,0.6501467895301419,0.6527064224867023,0.6552660554432626,0.6578256883998228,0.6603853213563831,0.6629449543129433,
            0.6655045872695036,0.6680642202260638,0.6706238531826242,0.6731834861391844,0.6757431190957447,0.678302752052305,0.6808623850088652,0.6834220179654255,0.6859816509219858,0.6885412838785461,
            0.6911009168351063,0.6936605497916666,0.6962201827482268,0.6987798157047871,0.7013394486613475,0.703899081726717,0.7064587148299335,0.7090183479331499,0.7115779810363664,0.7141376141395828,
            0.7166972472427992,0.7192568803460158,0.7218165134492321,0.7243761465524485,0.726935779655665,0.7294770641108483,0.7319418958467954,0.7344067275827424,0.7368715593186893,0.7393363910546362,
            0.7418012227905831,0.74426605452653,0.746730886262477,0.7491957179984239,0.7516605497343709,0.7541253814703178,0.7566513753472763,0.7592110084504928,0.7617706415537092,0.7643302746569256,
            0.7668899077601422,0.7694495408633586,0.7720091739665751,0.7745688070697915,0.7771284401730079,0.7796880732762244,0.7822477063652484,0.7848073393218087,0.7873669722783689,0.7899266052349292,
            0.7924862381914894,0.7950458711480497,0.79760550410461,0.8001651370611702,0.8027247700177303,0.8052844029742906,0.8078440359308511,0.8104036689678357,0.812963302071052,0.8155229351742684,
            0.8180825682774848,0.8206422013807013,0.8232018344839177,0.8257614675871341,0.8283211006903506,0.830880733793567,0.8334403668967834,0.8359999999999997,0.8384648317359468,0.8409296634718938,
            0.8433944952078407,0.8458593269437876,0.8483241586797345,0.8507889904156815,0.8532538221516284,0.8557186538875755,0.8581834856235224,0.8606483173594693,0.8631559625883948,0.8657155956916113,
            0.8682752287948277,0.870834861898044,0.8733944950012607,0.8759541281044771,0.8785137612076935,0.8810733943109099,0.8836330274141264,0.8861926605173428,0.8887522936205593,0.8913119265913121,
            0.8938715595478723,0.8964311925044326,0.8989908254609928,0.9015504584175531,0.9041100913741134,0.9066697243306738,0.9092293572872341,0.9117889902437943,0.9143486232003546,0.916874617090104,
            0.9193394489672753,0.9218042808444467,0.924269112721618,0.9267339445987894,0.9291987764759607,0.9316636083531321,0.9341284402303035,0.9365932721074749,0.9390581039846464,0.9415229358618178,
            0.9440642202260637,0.946623853182624,0.9491834861391842,0.9517431190957445,0.9543027520523047,0.9568623850088652,0.9594220179654255,0.9619816509219857,0.964541283878546,0.9671009168351062,
            0.9696360850210127,0.9721009168981843,0.9745657487753557,0.977030580652527,0.9794954125296984,0.9819602444068698,0.9844250762840412,0.9868899081612126,0.989354740038384,0.9918195719155554,
            0.9942844037927266,0.9968165138608156,0.9993761468173759,1.001935779773936,1.0044954127304966,1.0070550456870568,1.009614678643617,1.0121743116001773,1.0147339445567376,1.0172935775132979,
            1.019853210469858,1.0223975529519218,1.0248623848290932,1.0273272167062644,1.0297920485834358,1.0322568804606072,1.0347217123377785,1.0371865442149502,1.0396513760921215,1.042116207969293,
            1.0445810398464643,1.0470458717236357,1.0495688074955674,1.0521284404521276,1.054688073408688,1.0572477063652483,1.0598073393218086,1.0623669722783688,1.064926605234929,1.0674862381914896,
            1.0700458711480498,1.07260550410461,1.0751590208828308,1.0776238527600022,1.0800886846371736,1.0825535165143447,1.0850183483915161,1.0874831802686875,1.089948012145859,1.0924128440230303,
            1.0948776759002017,1.097342507777373,1.0998073396545447,1.1023211011303193,1.1048807340868796,1.1074403670434398,1.11,1.1125596329565604,1.1151192659131206,1.1176788988696809,
            1.1202385318262411,1.1227981647828014,1.1253577977393616,1.1279174306959219,1.1303853206909107,1.1328501525680823,1.1353149844452537,1.137779816322425,1.1402446481995965,1.1427094800767679,
            1.1451743119539393,1.1476391438311107,1.1501039757082818,1.1525688075854534,1.1550336394034018,1.1574984711393486,1.1599633028752956,1.1624281346112424,1.1648929663471894,1.1673577980831364,
            1.1698226298190832,1.1722874615550303,1.174752293290977,1.177217125026924,1.1796819567628711,1.1822293574149667,1.1847889905181832,1.1873486236213997,1.1899082567246162,1.1924678898278325,
            1.195027522931049,1.1975871560342657,1.200146789137482,1.2027064222406985,1.205266055343915,1.2077951073479776,1.2102599390839246,1.2127247708198714,1.2151896025558184,1.2176544342917652,
            1.2201192660277123,1.222584097763659,1.225048929499606,1.227513761235553,1.2299785929715001,1.232443424707447,1.234908256552729,1.2373730884299003,1.2398379203070715,1.242302752184243,
            1.2447675840614143,1.2472324159385857,1.249697247815757,1.2521620796929285,1.2546269115700999,1.2570917434472713,1.2595565752925533,1.2620214070285003,1.264486238764447,1.2669510705003941,
            1.2694159022363412,1.271880733972288,1.274345565708235,1.2768103974441818,1.2792752291801288,1.2817400609160756,1.2842048926520226,1.2866697244836376,1.289134556360809,1.2915993882379804,
            1.294064220115152,1.2965290519923234,1.2989938838694948,1.3014587157466662,1.3039235476238373,1.3063883795010087,1.3088532113781801,1.311318043237129,1.313782874973076,1.3162477067090228,
            1.3187125384449698,1.3211773701809166,1.3236422019168634,1.3261070336528107,1.3285718653887575,1.3310366971247045,1.3335015288606513,1.3359663605965981,1.3384311923325451,1.340896024068492,
            1.343360855804439,1.345825687540386,1.348290519276333,1.3507553510122798,1.3532201827482269,1.355685014484174,1.358149846220121,1.3606146779560677,1.3630795096965702,1.3655443415737416,
            1.368009173450913,1.3704740053280844,1.3729388372052558,1.3754036690824272,1.3778685009595986,1.38033333283677,1.3827981647139413,1.3852629965911125,1.3877278284682841,1.390192660277121,
            1.392657492013068,1.395122323749015,1.397587155484962,1.4000519872209087,1.4025168189568558,1.4049816506928026,1.4074464824287496,1.4099113141646964,1.4123761459006434,1.4148409776365902,
            1.4173058095046505,1.4197706413818219,1.4222354732589932,1.4247003051361646,1.427165137013336,1.4296299688905074,1.4320948007676788,1.4345596326448502,1.4370244645220216,1.439489296399193,
            1.4419541282216968,1.4444189599576438,1.4468837916935908,1.4493486234295376,1.4518134551654849,1.4542782869014317,1.4567431186373787,1.4592079503733255,1.4616727821092725,1.4641376138452193,
            1.4666024455811664,1.4689877667649611,1.4713577974160874,1.4737278280672137,1.47609785871834,1.4784678893694663,1.4808379200205926,1.483207950671719,1.4855779813228454,1.4879480119739716,
            1.490318042625098,1.4927155961662726,1.4951804279022196,1.4976452596381664,1.5001100913741134,1.5025749231100602,1.5050397548460073,1.507504586581954,1.509969418317901,1.5124342500538481,
            1.5148990817897952,1.517363913525742,1.5197584090062195,1.5221284396573458,1.5244984703084723,1.5268685009595984,1.5292385316107249,1.5316085622618514,1.5339785929129774,1.536348623564104,
            1.5387186542152302,1.5410886848663568,1.5434770641108486,1.5459418958467954,1.5484067275827424,1.5508715593186893,1.5533363910546363,1.555801222790583,1.55826605452653,1.5607308862624771,
            1.5631957179984237,1.5656605497343707,1.5681253814703175,1.570529051247478,1.5728990818986042,1.5752691125497307,1.577639143200857,1.5800091738519835,1.5823792045031095,1.584749235154236,
            1.5871192658053623,1.5894892964564888,1.5918593271076154,1.5942385320554242,1.5967033637913715,1.599168195527318,1.6016330272632653,1.604097858999212,1.6065626907351591,1.609027522471106,
            1.611492354207053,1.6139571859429998,1.6164220176789468,1.6188868494148936,1.6212996934887367,1.6236697241398632,1.6260397547909893,1.6284097854421158,1.6307798160932419,1.6331498467443684,
            1.6355198773954944,1.637889908046621,1.640259938697747,1.6426299693488735,1.6449999999999998,1.6473700305153334,1.6497400610306667,1.6521100915460005,1.6544801220613343,1.6568501525766677,
            1.6592201830920015,1.6615902136073348,1.6639602441226686,1.666330274638002,1.6687003051533358,1.6710703357299947,1.6734403663811213,1.6758103970322475,1.678180427683374,1.6805504583345001,
            1.682920488985627,1.6852905196367536,1.6876605502878796,1.6900305809390062,1.6924006115901324,1.694770642241259,1.6971406727697336,1.6995107032850674,1.7018807338004007,1.7042507643157345,
            1.7066207948310679,1.7089908253464015,1.711360855861735,1.7137308863770686,1.7161009168924024,1.7184709474077358,1.7208409779712541,1.7232110086223802,1.7255810392735067,1.7279510699246328,
            1.7303211005757593,1.7326911312268856,1.7350611618780118,1.7374311925291381,1.7398012231802646,1.7421712538313907,1.7445412844825172,1.7469113150241333,1.749281345539467,1.7516513760548005,
            1.7540214065701338,1.7563914370854676,1.758761467600801,1.7611314981161348,1.7635015286314681,1.765871559146802,1.7682415896621353,1.7706116202125124,1.7729816508636385,1.775351681514765,
            1.7777217121658915,1.7800917428170175,1.782461773468144,1.7848318041192703,1.7872018347703968,1.789571865421523,1.7919418960726494,1.7943119267237755,1.7966146789873918,1.7988899082821117,
            1.8011651375768323,1.8034403668715522,1.8057155961662725,1.807990825460993,1.810266054755713,1.8125412840504336,1.8148165133451535,1.817091742639874,1.8193822624537708,1.8217522931048973,
            1.8241223237560233,1.8264923544071499,1.8288623850582761,1.8312324157094026,1.8336024463605287,1.8359724770116552,1.8383425076627817,1.8407125383139078,1.8430825689650343,1.8453944955516153,
            1.8476697248463356,1.8499449541410558,1.852220183435776,1.8544954127304962,1.8567706420252166,1.8590458713199367,1.861321100614657,1.8635963299093772,1.8658715592040975,1.8681529046950298,
            1.870522935346156,1.8728929659972824,1.8752629966484087,1.8776330272995352,1.8800030579506612,1.8823730886017878,1.884743119252914,1.8871131499040406,1.8894831805551666,1.8918532112062931,
            1.8941743121158394,1.8964495414105598,1.8987247707052801,1.9010000000000002,1.9032752292947206,1.9055504585894407,1.907825687884161,1.9101009171788812,1.9123761464736015,1.9146513757683217,
            1.916926605063042,1.919201834483918,1.9214770639089993,1.9237522933340805,1.926027522759162,1.9283027521842433,1.9305779816093243,1.9328532110344057,1.9351284404594868,1.9374036698845682,
            1.9396788993096494,1.9419541286800632,1.9442293579747834,1.9465045872695037,1.9487798165642238,1.9510550458589442,1.9533302751536643,1.9556055044483847,1.957880733743105,1.9601559630378251,
            1.9624311923325455,1.9647064216272656,1.96689908213357,1.9690795102076766,1.9712599382817837,1.9734403663558904,1.9756207944299973,1.9778012225041042,1.979981650578211,1.9821620786523177,
            1.9843425067264249,1.986522934800532,1.9887339439112401,1.9910091733363215,1.9932844027614025,1.9955596321864841,1.997834861611565,2.0001100910366465,2.0023853204617277,2.0046605498868093,
            2.0069357793118905,2.0092110087369717,2.011486238162053,2.0136880730076174,2.0158685010817248,2.0180489291558312,2.020229357229938,2.022409785304045,2.024590213378152,2.026770641452259,
            2.0289510695263657,2.0311314976004726,2.0333119256745795,2.0354923537768963,2.0376727819759326,2.0398532101749685,2.0420336383740048,2.044214066573041,2.0463944947720774,2.0485749229711137,
            2.05075535117015,2.0529357793691863,2.055116207568222,2.057296635767259,2.059477063881665,2.0616574919557724,2.063837920029879,2.066018348103986,2.068198776178093,2.0703792042522,
            2.072559632326307,2.074740060400414,2.0769204884745207,2.0791009165486276,2.0812813446388545,2.0834617728378904,2.0856422010369267,2.087822629235963,2.0900030574349993,2.092183485634035,
            2.094363913833072,2.096544342032108,2.098724770231144,2.1009051984301803,2.1030856266292166,2.105266054755713,2.10744648282982,2.109626910903927,2.111807338978034,2.1139877670521408,
            2.116168195126247,2.1183486232003546,2.120529051274461,2.122709479348568,2.1248899074226753,2.1270672774355592,2.12915290440855,2.1312385313815416,2.1333241583545326,2.135409785327524,
            2.137495412300515,2.1395810392735064,2.141666666246498,2.143752293219489,2.14583792019248,2.147923547165471,2.150009174080641,2.1520948009341345,2.154180427787628,2.156266054641122,
            2.158351681494615,2.1604373083481088,2.162522935201602,2.1646085620550957,2.1666941889085893,2.168779815762083,2.1708654426155762,2.172951069580858,2.175036696553849,2.17712232352684,
            2.1792079504998316,2.1812935774728226,2.183379204445814,2.185464831418805,2.1875504583917964,2.1896360853647874,2.191721712337779,2.1938073392645125,2.195892966118006,2.1979785929714994,
            2.200064219824993,2.202149846678487,2.2042354735319805,2.206321100385474,2.2084067272389674,2.210492354092461,2.2125779809459547,2.2146636077994484,2.2166697240825672,2.2186605498295133,
            2.2206513755764594,2.2226422013234055,2.2246330270703516,2.226623852817298,2.2286146785642442,2.2306055043111903,2.2325963300581364,2.2345871558050825,2.236577981518913,2.2385688071517933,
            2.2405596327846733,2.2425504584175533,2.2445412840504337,2.2465321096833137,2.248522935316194,2.250513760949074,2.2525045865819546,2.2544954122148346,2.256486237847715,2.2584770635652247,
            2.260467889312171,2.262458715059117,2.264449540806063,2.266440366553009,2.268431192299955,2.2704220180469012,2.2724128437938473,2.2744036695407934,2.2763944952877395,2.2782935779143685,
            2.279810397444182,2.2813272169739953,2.2828440365038087,2.284360856033622,2.285877675563436,2.2873944950932494,2.288911314623063,2.2904281341528763,2.2919449536826897,2.293461773212503,
            2.295529051247478,2.2978990818986045,2.300269112549731,2.302639143200857,2.3050091738519836,2.30737920450311,2.309749235154236,2.3121192658053626,2.3144892964564887,2.316859327107615,
            2.31918348619648,2.321079510608747,2.3229755350210137,2.324871559433281,2.3267675838455477,2.3286636082578145,2.3305596326700813,2.3324556570823485,2.3343516814946152,2.336247705906882,
            2.338143730319149,2.33998776705144,2.341788990346296,2.3435902136411517,2.345391436936008,2.347192660230864,2.34899388352572,2.3507951068205757,2.352596330115432,2.354397553410288,
            2.3561987767051438,2.358
        };
        
        OMAF_INLINE LensMappingData normalizedAngleToImageMappingVector()
        {
            const size_t numValues = 982;
            const float64_t divider = 2.358;
            
            LensMappingData result;
            result.resize(numValues);
            
            for (size_t i = 0; i < numValues; ++i)
            {
                result[i] = (float32_t)(angleToImageHeight[i] / divider);
            }
            
            return result;
        }
    }
    
    namespace SunexDSL315
    {
        static const float64_t angleToImageHeight[] =
        {
            0,0.006788263482946677,0.013576526965893353,0.02036479044884003,0.027153053931786707,0.033941317414733385,0.04072958089768006,0.04751773239507444,0.05430523597507884,0.06109273955508323,
            0.06788024313508761,0.074667746715092,0.0814552502950964,0.08824275387510079,0.09502980615768124,0.1018157785500617,0.10860175094244214,0.11538772333482254,0.12217369572720299,0.12895966811958343,
            0.13574564051196386,0.1425306085604832,0.1493143092217884,0.15609800988309364,0.16288171054439884,0.16966541120570408,0.1764491118670093,0.18323281252831453,0.19001471511101647,0.1967953654605338,
            0.20357601581005116,0.21035666615956847,0.21713731650908583,0.22391796685860313,0.23069861720812043,0.23747646139283665,0.24425330337498374,0.2510301453571308,0.25780698733927787,0.264583829321425,
            0.271360671303572,0.27813751328571906,0.2849103033115797,0.2916825627243098,0.29845482213704,0.3052270815497702,0.31199934096250037,0.3187716003752305,0.32554369205908573,0.33231064003172384,
            0.33907758800436194,0.34584453597700004,0.3526114839496381,0.3593784319222762,0.3661453798949143,0.3729112388578076,0.3796721011894407,0.3864329635210738,0.393193825852707,0.3999546881843401,
            0.4067155505159733,0.4134764128476064,0.42023504197320644,0.4269890606059847,0.433743079238763,0.44049709787154123,0.4472511165043195,0.4540051351370977,0.460759153769876,0.4675095708364896,
            0.47425598616391523,0.48100240149134094,0.4877488168187666,0.49449523214619223,0.5012416474736179,0.5079880628010436,0.5147292943448702,0.5214673629003722,0.5282054314558742,0.5349435000113762,
            0.5416815685668781,0.5484196371223802,0.555157705677882,0.5618887654877005,0.5686177130736751,0.57534666065965,0.5820756082456247,0.5888045558315995,0.5955335034175743,0.602262451003549,
            0.6089823782061438,0.6157014759469529,0.6224205736877622,0.6291396714285714,0.6358587691693807,0.6425778669101898,0.6492962936580394,0.6560047673582535,0.6627132410584676,0.6694217147586816,
            0.6761301884588958,0.6828386621591098,0.6895471358593239,0.6962532133281986,0.7029503049239642,0.7096473965197299,0.7163444881154954,0.7230415797112612,0.7297386713070269,0.7364357629027926,
            0.7431285247134513,0.7498135183835949,0.7564985120537382,0.7631835057238818,0.7698684993940252,0.7765534930641688,0.7832384867343123,0.7899169773731542,0.7965891004581974,0.8032612235432406,
            0.8099333466282838,0.8166054697133268,0.82327759279837,0.829949715883413,0.8366129530034068,0.8432714604991698,0.849929967994933,0.8565884754906962,0.8632469829864593,0.8699054904822225,
            0.8765639979779856,0.8832110182221365,0.8898551666519751,0.8964993150818136,0.9031434635116521,0.9097876119414906,0.916431760371329,0.9230759088011677,0.9297057342882381,0.9363347640582447,
            0.942963793828251,0.9495928235982575,0.9562218533682639,0.9628508831382703,0.9694784170927246,0.9760916576875482,0.9827048982823721,0.9893181388771959,0.9959313794720197,1.0025446200668433,
            1.0091578606616671,1.0157670699797996,1.0223636596585401,1.0289602493372807,1.0355568390160212,1.0421534286947618,1.0487500183735023,1.055346608052243,1.0619364344380606,1.0685156589028468,
            1.075094883367633,1.081674107832419,1.0882533322972054,1.0948325567619916,1.1014117812267779,1.107981291201058,1.1145424200512895,1.1211035489015204,1.1276646777517516,1.134225806601983,
            1.1407869354522142,1.1473480643024454,1.15389631296948,1.160438616935441,1.166980920901402,1.1735232248673628,1.1800655288333235,1.1866078327992846,1.1931501367652453,1.1996761799102529,
            1.2061989297189923,1.2127216795277316,1.219244429336471,1.2257671791452103,1.2322899289539497,1.2388126787626892,1.245315571063851,1.2518180363212397,1.2583205015786285,1.2648229668360171,
            1.2713254320934058,1.2778278973507944,1.28432768984874,1.2908089957238427,1.2972903015989456,1.3037716074740489,1.3102529133491516,1.3167342192242544,1.3232155250993576,1.329690880028498,
            1.3361504420612704,1.342610004094043,1.3490695661268153,1.355529128159588,1.3619886901923604,1.3684482522251327,1.3748982906086082,1.3813352339631988,1.3877721773177893,1.39420912067238,
            1.400646064026971,1.4070830073815614,1.413519950736152,1.4199436219921673,1.4263572162842797,1.4327708105763919,1.4391844048685045,1.4455979991606167,1.4520115934527291,1.4584251877448415,
            1.4648215472811124,1.4712110635989715,1.4776005799168301,1.4839900962346888,1.4903796125525477,1.4967691288704066,1.5031586451882653,1.5095267479800722,1.5158914559448156,1.5222561639095593,
            1.5286208718743028,1.5349855798390464,1.5413502878037901,1.547714725423732,1.5540537501886393,1.560392774953547,1.5667317997184542,1.5730708244833618,1.5794098492482689,1.5857488740131762,
            1.5920837512548711,1.5983965083762017,1.6047092654975323,1.6110220226188632,1.617334779740194,1.6236475368615249,1.6299602939828555,1.6362647209578396,1.642550189653576,1.648835658349312,
            1.6551211270450483,1.6614065957407849,1.667692064436521,1.6739775331322573,1.6802503856889932,1.6865079815215316,1.6927655773540704,1.6990231731866088,1.7052807690191476,1.711538364851686,
            1.7177959606842244,1.7240363078879621,1.730265155998308,1.7364940041086534,1.742722852218999,1.7489517003293447,1.7551805484396905,1.7614093965500361,1.767616104607977,1.773815328706344,
            1.7800145528047109,1.7862137769030777,1.7924130010014445,1.7986122250998116,1.8048114491981786,1.8109835153998084,1.8171523865498562,1.8233212576999043,1.829490128849952,1.835659,
            1.8418278711500478,1.8479954335276911,1.8541332213758421,1.8602710092239931,1.8664087970721446,1.8725465849202958,1.8786843727684468,1.884822160616598,1.8909538379363877,1.8970593757512304,
            1.903164913566073,1.9092704513809162,1.915375989195759,1.921481527010602,1.9275870648254447,1.9336815917677739,1.939754441061659,1.9458272903555442,1.9519001396494293,1.9579729889433148,
            1.9640458382372,1.970118687531085,1.9761751437558563,1.982214137789931,1.9882531318240053,1.99429212585808,2.000331119892154,2.006370113926229,2.0124091079603033,2.0184261662897125,
            2.024430428795946,2.0304346913021796,2.036438953808413,2.0424432163146466,2.0484474788208797,2.0544517413271137,2.0604282683132356,2.066396924403603,2.0723655804939707,2.078334236584338,
            2.084302892674706,2.0902715487650734,2.096240204855441,2.102175201640333,2.1081075209841997,2.1140398403280662,2.119972159671933,2.1259044790158,2.131836798359667,2.1377663435385275,
            2.1436610134515934,2.1495556833646594,2.1554503532777254,2.161345023190791,2.167239693103857,2.173134363016923,2.179020548980474,2.1848768391405824,2.190733129300691,2.1965894194607984,
            2.202445709620907,2.208301999781015,2.2141582899411234,2.220000010212432,2.2258167535226385,2.231633496832846,2.237450240143053,2.24326698345326,2.249083726763467,2.254900470073674,
            2.2606963641038247,2.266472685319077,2.2722490065343286,2.2780253277495808,2.2838016489648325,2.2895779701800842,2.2953542913953364,2.301102934975456,2.306837520069816,2.3125721051641763,
            2.3183066902585368,2.324041275352897,2.3297758604472576,2.3355104455416176,2.3412104932779565,2.3469024673324976,2.3525944413870388,2.35828641544158,2.363978389496121,2.369670363550662,
            2.3753623376052038,2.3810122360822414,2.3866602850806924,2.392308334079144,2.397956383077594,2.4036044320760452,2.409252481074496,2.4148957989352207,2.4204989020193937,2.4261020051035667,
            2.431705108187739,2.437308211271912,2.4429113143560848,2.4485144174402578,2.45410583380981,2.4596626769736174,2.465219520137425,2.470776363301233,2.4763332064650405,2.4818900496288485,
            2.487446892792656,2.4929846485368907,2.4984937731236627,2.5040028977104343,2.509512022297206,2.5150211468839783,2.52053027147075,2.526039396057522,2.5315218415184155,2.536982225391504,
            2.5424426092645938,2.5479029931376824,2.553363377010771,2.55882376088386,2.564284144756949,2.569709653281527,2.5751198377732094,2.580530022264891,2.5859402067565735,2.5913503912482554,
            2.5967605757399372,2.6021707602316195,2.607537319272534,2.6128956985401572,2.6182540778077814,2.6236124570754056,2.6289708363430293,2.634329215610653,2.6396875948782768,2.64499341531954,
            2.6502986766130365,2.6556039379065335,2.66090919920003,2.666214460493527,2.6715197217870235,2.6768175145295983,2.6820681979476753,2.6873188813657527,2.69256956478383,2.697820248201907,
            2.703070931619984,2.708321615038062,2.7135562893357528,2.718750644327969,2.723944999320185,2.7291393543124016,2.734333709304618,2.7395280642968336,2.7447224192890505,2.7498918340611094,
            2.755028400738881,2.7601649674166526,2.7653015340944247,2.7704381007721954,2.7755746674499675,2.7807112341277387,2.785813246454486,2.7908901283249508,2.7959670101954157,2.8010438920658807,
            2.806120773936346,2.8111976558068106,2.8162745376772755,2.8213069032076565,2.8263224944663574,2.8313380857250583,2.8363536769837587,2.84136926824246,2.8463848595011605,2.8514004507598614,
            2.856360836441798,2.86131324058201,2.8662656447222212,2.8712180488624335,2.8761704530026453,2.881122857142857,2.886073894147758,2.8909613594499524,2.895848824752146,2.9007362900543403,
            2.9056237553565345,2.9105112206587282,2.915398685960922,2.9202748702147514,2.9250953542281772,2.929915838241602,2.9347363222550276,2.939556806268453,2.9443772902818783,2.9491977742953037,
            2.9539964609842393,2.9587479201458127,2.9634993793073874,2.968250838468961,2.973002297630535,2.977753756792109,2.982505215953683,2.9872238273246605,2.9919043650973913,2.9965849028701217,
            3.001265440642852,3.0059459784155824,3.010626516188313,3.0153070539610436,3.019943044716363,3.024550617553204,3.029158190390045,3.0337657632268855,3.038373336063726,3.0429809089005677,
            3.047588481737408,3.05213909625755,3.0566715157463333,3.0612039352351164,3.0657363547239,3.0702687742126833,3.074801193701466,3.07933361319025,3.083796149184252,3.0882513717949047,
            3.0927065944055574,3.0971618170162105,3.1016170396268636,3.1060722622375163,3.1105232989902505,3.1148989901130943,3.119274681235938,3.1236503723587816,3.128026063481626,3.1324017546044693,
            3.1367774457273137,3.141136822025286,3.1454309388956596,3.1497250557660332,3.1540191726364073,3.158313289506781,3.162607406377155,3.1669015232475286,3.171166543268398,3.1753768964542006,
            3.179587249640003,3.183797602825806,3.188007956011609,3.1922183091974112,3.1964286623832137,3.200596491903516,3.204720892947061,3.208845293990607,3.2129696950341526,3.2170940960776986,
            3.221218497121244,3.2253428981647896,3.2294106093587875,3.233446722918088,3.2374828364773878,3.241518950036688,3.2455550635959884,3.2495911771552883,3.253627290714589,3.257592206323761,
            3.261538135779851,3.265484065235941,3.269429994692031,3.273375924148121,3.2773218536042115,3.2812677830603008,3.285127173144496,3.2889807291051745,3.2928342850658527,3.296687841026531,
            3.3005413969872093,3.3043949529478875,3.308240545819468,3.3119995397861626,3.3157585337528572,3.319517527719552,3.3232765216862465,3.3270355156529416,3.3307945096196363,3.334531199396773,
            3.3381938797867097,3.341856560176647,3.3455192405665835,3.3491819209565206,3.3528446013464572,3.3565072817363943,3.3601327456408714,3.3636972157922935,3.3672616859437157,3.370826156095138,
            3.37439062624656,3.377955096397982,3.381519566549404,3.3850314252338665,3.3884959335862903,3.3919604419387146,3.395424950291139,3.3988894586435627,3.402353966995987,3.405818475348411,
            3.409214461584755,3.412577257383058,3.4159400531813624,3.419302848979666,3.4226656447779704,3.426028440576274,3.4293912363745784,3.432669442160392,3.435929211655209,3.439188981150026,
            3.442448750644843,3.44570852013966,3.4489682896344767,3.4522280591292938,3.455386642959144,3.458541927230578,3.4616972115020124,3.4648524957734463,3.4680077800448803,3.4711630643163147,
            3.474236465338863,3.476684575870023,3.4791326864011825,3.481580796932343,3.4840289074635025,3.4864770179946625,3.4889251285258225,3.4916617181159104,3.495206050017889,3.4987503819198684,
            3.5022947138218474,3.505839045723827,3.5093833776258054,3.5129277095277844,3.5161810091139856,3.5190164161013744,3.521851823088763,3.524687230076152,3.5275226370635413,3.53035804405093,
            3.5331934510383194,3.5359686123620397,3.5386960317974805,3.5414234512329212,3.544150870668362,3.546878290103803,3.549605709539244,3.552333128974685,3.5549839768748135,3.5576028247284257,
            3.5602216725820375,3.5628405204356497,3.565459368289262,3.5680782161428737,3.5706970639964855,3.573223340568714,3.575733617140595,3.578243893712476,3.580754170284357,3.583264446856238,
            3.585774723428119,3.588285
        };

        OMAF_INLINE LensMappingData normalizedAngleToImageMappingVector()
        {
            const size_t numValues = 652;
            const float64_t divider = 3.588285;
            
            LensMappingData result;
            result.resize(numValues);
            
            for (size_t i = 0; i < numValues; ++i)
            {
                result[i] = (float32_t)(angleToImageHeight[i] / divider);
            }
            
            return result;
        }
    }
OMAF_NS_END
